home *** CD-ROM | disk | FTP | other *** search
- /* GadTools layout toolkit
- **
- ** Copyright © 1993-1994 by Olaf `Olsen' Barthel
- ** Freely distributable.
- */
-
- #include "gtlayout_global.h"
-
- ObjectNode * __regargs
- LTP_FindNode_Position(ObjectNode *group,LONG x,LONG y)
- {
- ObjectNode *node;
- ULONG page;
-
- SCANPAGE(group,node,page)
- {
- if(node -> Type == GROUP_KIND)
- {
- ObjectNode *result;
-
- if(result = LTP_FindNode_Position(node,x,y))
- return(result);
- }
- else
- {
- if(node -> Left <= x && node -> Left + node -> Width > x && node -> Top <= y && node -> Top + node -> Height > y)
- {
- if(node -> Type == PICKER_KIND)
- return(node -> Special . Picker . Parent -> UserData);
-
- if(node -> Type == INCREMENTER_KIND)
- return(node -> Special . Incrementer . Parent -> UserData);
-
- return(node);
- }
- }
- }
-
- return(NULL);
- }
-
-
- /*****************************************************************************/
-
-
- ObjectNode * __regargs
- LTP_FindNode(ObjectNode *group,LONG id)
- {
- ObjectNode *node;
- ObjectNode *result;
-
- SCANGROUP(group,node)
- {
- if(node -> Type == GROUP_KIND)
- {
- if(node -> ID == id)
- return(node);
-
- if(result = LTP_FindNode(node,id))
- return(result);
- }
- else
- {
- if((node -> ID == id) && (node -> Type != PICKER_KIND) && (node -> Type != INCREMENTER_KIND))
- return(node);
- }
- }
-
- return(NULL);
- }
-
-
- /*****************************************************************************/
-
-
- struct Gadget * __regargs
- LTP_FindGadget(LayoutHandle *handle,LONG id)
- {
- if(handle && handle -> GadgetArray)
- {
- LONG i = handle -> Count;
-
- while(i--)
- {
- if(handle -> GadgetArray[i])
- {
- if(handle -> GadgetArray[i] -> GadgetID == id && handle -> GadgetArray[i] -> UserData)
- {
- register struct ObjectNode *Node = (struct ObjectNode *)handle -> GadgetArray[i] -> UserData;
-
- if(Node -> PointBack == Node && Node -> Host == handle -> GadgetArray[i])
- return(handle -> GadgetArray[i]);
- }
- }
- }
- }
-
- return(NULL);
- }
-